Java和YAML:如何解析多个YAML文档并将它们合并到单个YAML表示?
假设我有一个文件,defaults.yaml
:
pool:
idleConnectionTestPeriodSeconds: 30
idleMaxAgeInMinutes: 60
partitionCount: 4
acquireIncrement: 5
username: dev
password: dev_password
和另一个文件production.yaml
:
pool:
username: prod
password: prod_password
在运行时,如何读取这两个文件并将它们合并为一个文件,以便应用程序“看到”以下内容
pool:
idleConnectionTestPeriodSeconds: 30
idleMaxAgeInMinutes: 60
partitionCount: 4
acquireIncrement: 5
username: prod
password: prod_password
比如说,SnakeYAML有可能实现这一点吗?还有其他工具吗
我知道一种选择是将多个文件作为贴图读取,然后自己合并,将合并渲染为一个临时文件,然后读取,但这是一种重量级的解决方案。现有的工具已经可以这样做了吗
# 1 楼答案
你可以使用Jackson,关键是使用ObjectMapper。ReaderForUpdate()并用@JsonMerge注释该字段(或者下一个对象中所有缺失的字段将覆盖旧字段):
马文:
代码: